package com.gopay.common.domain.rims;

import java.util.HashMap;
import java.util.Map;

import com.gopay.common.domain.BaseEntity;

/**
 * 风控接口参数项
 * @RimsEvaluateParas.java
 * @author MA HUAN
 * @2014-11-20 下午3:21:27  www.gopay.com.cn Inc.All rights reserved.
 */
public class RimsEvaluateParas extends BaseEntity{

    /**
     * 
     */
    private static final long serialVersionUID = -6620790486223172627L;

    public enum ParaKey {
        /**
         * 风控对象客户号
         */
        CUST_NO,
        /**
         * 设备指纹
         */
        DEVICE_FINGER,
        /**
         * 设备标识
         */
        DEVICE_TOKEN,
        /**
         * IP地址
         */
        IP_ADDRESS,
        /**
         * 会话ID
         */
        SESSION_ID,
        /**
         * 交易号
         */
        TRANS_ORDER_ID,
        /**
         * 交易时间
         */
        TRANS_TIME,

        /**
         * 付款账户
         */
        PAY_ACCOUNT,
        /**
         * 付款客户ID
         */
        PAY_CUST_ID,
        /**
         * 付款客户名称
         */
        PAY_CUST_NAME,
        /**
         * 付款金额
         */
        PAY_AMOUNT,
        /**
         * 付款余额总额
         */
        PAY_BALANCE,
        /**
         * 付款可用余额
         */
        PAY_AVA_BALANCE,
        /**
         * 付款冻结余额
         */
        PAY_FRZ_BALANCE,
        /**
         * 付款客户类型
         */
        PAY_CUST_TYPE,
        
        /**
         * 收款账户
         */
        REC_ACCOUNT,
        /**
         * 收款客户号
         */
        REC_CUST_ID,
        /**
         * 收款客户名称
         */
        REC_CUST_NAME,
        /**
         * 收款账户余额
         */
        REC_BALANCE,
        /**
         * 收款客户类型
         */
        REC_CUST_TYPE,
        /**
         * 收看银行开户行网点
         */
        REC_BANK_OPEN_NODE,
        
        /**
         * 币种
         */
        CURRENCY_TYPE,
        /**
         * 通知客户账户
         */
        NOTIFY_CUST_ACCOUNT,
        /**
         * 通知客户类型
         */
        NOTIFY_CUST_TYPE,
        /**
         * 投标账户
         */
        BID_ACCOUNT,
        /**
         * 投标金额
         */
        BID_AMOUNT,
        /**
         * 账户产品代码
         */
        ACCT_PRODUCT,
        /**
         * 登录用户名
         */
        LOGIN_NAME,
        /**
         * 上次登录时间
         */
        LAST_LOGIN_TIME,
        /**
         * 密码错误次数统计
         */
        PASSWORD_ERROR_COUNT,
        /**
         * 子交易号
         */
        SUB_TRAN_TYPE,
        
        /**
         * 关联订单号
         */
        RELEVANT_TRANS_ORDER_ID,
    }
    
    private Map<ParaKey, String> parameters = new HashMap<ParaKey, String>();
    
    public void putPara(ParaKey key, String value) {
        parameters.put(key, value);
    }
    
    public String getPara(ParaKey key) {
        return parameters.get(key);
    }
    
    /**
     * 深度复制参数项
     * @return
     */
    public Map<ParaKey, String> copyParas() {
        
        Map<ParaKey, String> ret = new HashMap<ParaKey, String>();
        ret.putAll(parameters);
        return ret;
    }
}
